\chapter{Менеджеры ресурсов в QNX}

\textit
{
  Теоретический материал содержится в электронном приложеннии "Написание
  менеджера ресурсов".
}

\section{Индивидуальное задание}

\begin{itemize}
\item
  Прежде всего, вам предлагается собрать и добиться работоспособности
  примера из пособия.

  Предполагается, что у вас должна получиться программа, создающая
  псевдофайл /dev/sample, и реагирующая на команды сat и echo:
  \begin{lstlisting}
  # cat /dev/sample
  Hello, world
  # echo Hello> /dev/sample
  Received 6 bytes = 'Hello'
  \end{lstlisting}

  При выполнении задания ограничьтесь однопоточным менеджером ресурсов
  (без пула потоков).
\item
  Далее необходимо выполнить два варианта заданий:
  \begin{enumerate}
  \item
    Требуется разработать менеджер ресурсов, создающий два псевдофайла
    /dev/info /dev/buf. В программе должна присутствовать глобальная 
    переменная char g\_buf[100], которая заполняется при поступлении
    данных в /dev/buf посредством echo (как в предыдущем примере).
    При помощи cat /dev/info ее содержимое можно вывести на консоль.
    g\_buf[100] следует защитить при помощи мутекса.
  \item
    Требуется разработать менеджер ресурсов, создающий псевдофайл
    /dev/examp. В программе должна присутствовать глобальная 
    переменная char g\_buf[100], которая заполняется при поступлении
    данных в /dev/examp посредством echo (как в предыдущем примере).
    В менеджере ресурсов должен присутствовать поток, который должен
    раз в секунду сохранять данную строку в файле /tmp/examp.log.
    g\_buf[100] следует защитить при помощи мутекса.
  \end{enumerate}
\end{itemize}

